package com.azt.provider.mapper;

import com.azt.api.dto.BranchCompanyManage;
import com.azt.api.pojo.Company;
import com.azt.api.pojo.CompanyVO;
import com.azt.api.pojo.User;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
import java.util.Map;

public interface CompanyMapper extends Mapper<Company> {
	
	List<Company> selectMainCompanyList(Map<String, String> searchMap);
	
	void deleteCompanyAppBycid(int cid);
	
	void deleteCompanyCateBucid(int cid);
	
	void changeCompanyStateByid(int cid);
	
	Company selectMainCompanyByid(String id);


	/**
	 * 根据公司ids查所有公司名称
	 * Created by 张栋 on 2016/10/12 11:42
	 */
    List<String> getCustommerNamesByIds(@Param("ids") String ids);
	List<BranchCompanyManage> selectBranchCompany(@Param("companyId")Integer companyId,@Param("branchCompany")String branchCompany);

	Map getOrderCompanyTip(int companyId);

	List<Company> checkCompanyName(@Param("branchCompanyName")String branchCompanyName);

	List<Company> getAllBranchCompany(Integer companyId);

	List<Company> getBranchCompany(Integer companyId);

	/**
	 * 获取一个公司下所有管理员的
	 * @Title: getAdminIdsByCompanyId 
	 * @Description: TODO
	 * @param companyId
	 * @return
	 * @return: String
	 * @author: zhoudongdong 2016年12月9日 上午10:53:42
	 */
	public List<User> getAdminIdsByCompanyId(Integer companyId);
	
	/**
	 * 新的查询（不用关联）
	 * @Title: queryCompanysBySQL 
	 * @Description: TODO
	 * @param params
	 * @return
	 * @return: List<CompanyVO>
	 * @author: zhoudongdong 2016年12月14日 上午11:18:34
	 */
	public List<CompanyVO> queryCompanysBySQL(Map<String, String> params);
	
	/**
	 * 根据ids获取导出excel 公司字段集合
	 * @Title: selectExportCompany 
	 * @Description: TODO
	 * @param companyIds
	 * @return
	 * @return: List<CompanyExportVO>
	 * @author: zhoudongdong 2016年12月20日 上午9:48:57
	 */
	public List<Map<String, String>> selectExportCompany(String companyIds);

	/**
	 * 修改公司状态
	 * @param state
	 * @param companyId
	 */
	void changeCompanyState(@Param("state") Integer state ,@Param("companyId") Integer companyId);

	/**
	 * 修改平安银行签约状态
	 * @param state
	 * @param companyId
	 */
	void changeSignPinganState(@Param("state") Integer state ,@Param("companyId") Integer companyId);

	List<Company> selectByName(String companyName);

	/**
	 * 根据条件查询公司
	 */
	List<Company> selectByCondition(@Param("params") Map<String, Object> params);
}

